iT邦幫忙

2026 iThome 鐵人賽

DAY 4
0

昨天寫到最後,我留下了一個問題:

Prompt 跟 Requirement,到底差在哪裡?

如果最後都是透過自然語言跟 AI 溝通,那這個問題其實會變得更直接:

把 Prompt 寫得很完整,跟把 Requirement 寫清楚,到底有什麼不一樣?

一開始我其實也會把這兩件事混在一起。

想到更多功能,就繼續補進 Prompt。

AI 做錯了,就把 Prompt 改得更詳細。

畫面不符合期待,就加入更多 UI 描述。

久了之後,Prompt 可能從原本的一句話,變成好幾百字甚至上千字。

看起來越來越完整。

但問題是:

Prompt 變完整了,需求真的也變清楚了嗎?


Prompt 寫得更長之後

繼續用昨天的「活動報名網站」來看。

一開始,我可能只對 AI 說:

幫我做一個活動報名網站。

很明顯,這句話留下了大量空白。

所以我開始補充:

幫我做一個活動報名網站,使用 React 和 Tailwind CSS 開發。首頁要有活動名稱、活動介紹、日期、地點以及報名按鈕。使用者點擊報名後進入表單,填寫姓名、Email 和電話,送出之後顯示報名成功頁面。整體介面希望簡潔、現代,而且要支援手機版。

這次看起來好多了。

技術有了。

頁面有了。

欄位有了。

流程也大致有了。

如果把這段交給 AI Coding 工具,它大概已經可以開始產生一個看起來像模像樣的網站。

但再多想一下,就會發現還是有很多事情沒有決定。

例如:

報名有沒有人數上限?

額滿之後按鈕要消失,還是顯示「已額滿」?

同一個 Email 可以重複報名嗎?

活動開始之後還能不能報名?

電話是不是必填?

Email 格式錯誤時要怎麼處理?

報名成功之後,要不要寄確認信?

使用者填完表單後能不能修改資料?

如果送出失敗,要顯示什麼?

這些問題,跟 React、Tailwind、按鈕圓角多大,其實是完全不同層次的事情。

而且它們會直接影響最後做出來的產品怎麼運作。

這也是我慢慢發現:

Prompt 裡面的字變多,不代表那些真正需要決定的事情已經被決定了。


Prompt 比較像「我要怎麼跟 AI 說」

我目前會把 Prompt 理解成:

在這一次互動裡,我要怎麼把任務、背景、限制與期待告訴 AI。

所以 Prompt 關心的是「怎麼溝通」。

例如我可以告訴 AI:

  • 要它扮演什麼角色
  • 現在要完成什麼任務
  • 使用什麼技術
  • 希望輸出什麼格式
  • 有哪些限制
  • 回答應該詳細還是簡短

這些資訊都可能讓 AI 更容易理解我要它做什麼。

因此,Prompt 當然很重要。

尤其到了 Vibe Coding,Prompt 幾乎已經變成人跟程式碼之間的重要介面。

但問題在於:

如果我自己都還沒有決定產品應該怎麼運作,再好的 Prompt 也只是把「還沒決定的事情」更清楚地交給 AI。


Requirement 比較像「這個產品到底應該怎麼運作」

Requirement 關心的是另一件事:

這個系統真正需要滿足什麼?

例如剛剛的活動報名網站。

「使用 React 開發」是一種技術上的指示。

但:

每個 Email 只能報名一次。

這是在決定系統行為。

再例如:

活動額滿後,使用者仍然可以查看活動資訊,但不能再送出報名表單。

這也是在決定產品應該如何運作。

甚至:

使用者沒有登入帳號也可以完成報名。

這同樣會直接改變整個產品設計。

這些決定就算今天不是交給 ChatGPT、Claude 或其他 AI Coding 工具,而是交給一位工程師開發,它們依然必須被說清楚。

這就是我目前認為 Prompt 與 Requirement 最重要的差別。

Prompt 關心的問題是「我要怎麼告訴 AI?」,對象是 AI 模型或 AI Coding 工具本身,內容通常是任務、背景、格式、技術指示這些東西。Requirement 關心的問題不一樣,是「產品應該滿足什麼?」,對象其實是專案本身,內容比較偏向使用方式、規則、限制、預期行為。

差別在換掉 AI 的那一刻會更明顯:如果哪天換一個模型或工具,Prompt 大概要重新調整;但 Requirement 原則上還是成立的。沒寫清楚的後果也不一樣——Prompt 沒寫清楚,AI 可能不懂你在講什麼;Requirement 沒寫清楚,AI 就只能自己替你做產品決定了。

這兩者並不是互斥的。

一個好的 Prompt 當然可以包含很完整的 Requirement。

差別大概是這樣:

我想傳達的「內容」是 Requirement,Prompt 只是我拿來把這些內容交給 AI 的其中一種「方式」。


一個很完整的 Prompt,也可能建立在模糊需求上

這件事也是我開始做 ClarifyBuild 之後,覺得特別需要分清楚的地方。

因為現在很多人在改善 Vibe Coding 結果時,很自然會想到:

是不是我的 Prompt 不夠好?

於是開始研究 Prompt 要怎麼寫得更完整。

加入角色。

加入背景。

加入技術架構。

加入 UI 風格。

加入輸出格式。

甚至建立一份非常長的 Master Prompt。

這些方法本身都沒有問題。

但如果真正缺少的是「產品決定」,那麼光靠改寫 Prompt,其實沒有解決根本問題。

假設我寫:

請你扮演一位具有十年經驗的 Senior Full-Stack Developer,仔細分析以下需求,使用 React、TypeScript 與 Tailwind CSS 建立一套具有良好 UX、RWD、可維護架構與現代化視覺設計的活動報名系統……

這段 Prompt 聽起來非常專業。

但它仍然沒有告訴 AI:

同一個人能不能報兩次?

如果我沒有決定,AI 還是只能自己決定。

可能第一次幫我做成可以重複報名。

我發現不對之後,再告訴它不能重複。

接著 AI 又開始修改表單驗證、資料結構和錯誤訊息。

如果這個決定還牽涉到其他功能,就可能繼續往後改。

於是又回到 Day 2、Day 3 一直談到的情況:

Coding 很快,但返工也很快。


AI 最擅長回答問題,但不一定應該替我決定問題

這也是我目前對 Vibe Coding 最大的觀念轉變之一。

以前寫程式時,很多事情必須自己處理,因此會被迫提早思考。

資料怎麼存?

狀態怎麼變?

錯誤怎麼處理?

使用者下一步去哪裡?

但現在 AI 可以非常快速地幫我補完這些東西。

這當然讓開發速度快很多。

可是另一面是:

過去會阻止我繼續 Coding 的問題,現在 AI 可以直接幫我跨過去。

而它跨過去的方法,就是幫我選一個答案。

這個答案不一定錯。

有時甚至非常合理。

真正的問題是:

那是不是我想要的答案?

如果不是,我可能要等到功能已經做出來,甚至整套流程都建立之後才發現。

所以我現在會把問題分成兩種:

一種是:

這件事情要怎麼實作?

這類問題通常很適合跟 AI 一起解決。

另一種則是:

這個產品應該怎麼運作?

這類問題,我反而希望在 AI 開始寫程式之前,就先被提出來。

因為後者其實跟怎麼寫程式沒什麼關係,是決策的問題。


所以 ClarifyBuild 不是「Prompt 美化器」

這個差異也慢慢影響了 ClarifyBuild 的定位。

如果問題只是:

使用者的 Prompt 寫得不夠好。

那 ClarifyBuild 最簡單的做法,其實就是做一個 Prompt Optimizer。

使用者輸入:

幫我做一個活動報名網站。

系統幫他改寫成一段幾百字、格式漂亮、技術細節完整的 Prompt。

然後直接丟給 AI Coding 工具。

這當然也有價值。

但它不是我現在真正想解決的問題。

我更在意的是:

當使用者只有一個 Idea 時,有哪些重要的事情其實還沒有被決定?

所以 ClarifyBuild 不應該只是把原本的句子「寫得更專業」。

它應該先停在 Coding 前面,去找出藏在一句 Idea 裡、還沒被問出來的問題。

例如:

「幫我做一個活動報名網站。」

ClarifyBuild 不應該第一時間回答:

好,我幫你整理成最佳 Prompt。

而應該先問:

一個人可以重複報名嗎?

有報名人數限制嗎?

活動額滿後要發生什麼事?

報名需要登入嗎?

因為這些答案,才會真正改變後面要做出什麼。


Prompt Engineering 前面,可能還少了一步

所以走到 Day 4,我目前對整件事情的理解開始變成:

我們當然需要更好的 Prompt。

但在更好的 Prompt 之前,也許還需要先確認:

我到底有沒有把需求想清楚?

如果需求本身還是一堆尚未回答的問題,那麼直接進入 Prompt Engineering,很可能只是把模糊需求包裝得更完整。

這也是 ClarifyBuild 想插入的位置:在 Idea 真正交給 AI Build 之前,多留一個 Clarify 的步驟。它不是要取代 Prompt,也不是要取代 AI Coding,只是想在兩者前面,多留一段真正想清楚的時間。

目前整條路徑也開始慢慢成形:

Idea → Clarify → Requirement → Specification → Build

一個模糊的想法,不直接變成程式碼。

而是先經過澄清,逐步變成真正能夠支撐開發的資訊。

至於這個 Clarify 到底要怎麼做?

ClarifyBuild 又應該問使用者哪些問題?

這就會開始進入下一階段真正要設計的東西了。


小結

今天想留下的是這個差異:

Prompt 負責的是我跟 AI 怎麼溝通,但產品到底要做什麼,還是得先把 Requirement 想清楚。

Prompt 可以很長。

可以很完整。

甚至可以寫得非常專業。

但如果真正重要的產品決定還沒有做出來,AI 最後仍然必須替我們填空。

而我現在想做的 ClarifyBuild,並不是讓 AI 更會猜。

而是想辦法讓:

需要猜的地方變少。

明天開始,就要從「發現問題」慢慢走向「怎麼解決問題」。

也要正式把 ClarifyBuild 拉進來看看:

從一個模糊 Idea 出發,它應該怎麼一步一步把需求問清楚?

Day 4 完成。

明天見。


上一篇
Day 3|需求沒說清楚,到底是哪裡沒說清楚?
下一篇
Day 5|ClarifyBuild 要怎麼把模糊 Idea 問清楚?設計第一版 Clarification Flow
系列文
AI 寫不好,可能是我沒說清楚:30 天打造 ClarifyBuild,讓 Vibe Coding 從需求開始8
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言